第44回 シェル芸勉強会振り返り 問題と解答
from 第44回 シェル芸勉強会振り返り 問題と解答
問題
https://b.ueda.tech/?post=20191026_shellgei_44_q
僕の解答
/icons/fail.icon Q1. 以下のナンバープレースを次のように、第一フィールドが行番号、第二フィールドが列番号、第三フィールドが区画(3x3のグリッドに適当に番号をつけたもの)、第四フィールドが値のファイルaに変換してください
/icons/fail.icon Q2. 前の問題で作ったaから、次のように5列目以降に入らない数字を書き込んだファイルbを作ってください。入らない数字は重複を除去しなくて構いません
/icons/fail.icon Q3. 前の問題で作ったbから、次のように、入る数字の候補を5列目以降に書き込んだファイルcを作ってください
/icons/fail.icon Q4. cから元のsudokuのフォーマットでsudoku_1を作ってください。また、これまでの解答から、ナンバープレースの問題を解いてください
/icons/fail.icon Q5. 積分を計算してください。数値計算で構いません
/icons/pass.icon Q6. 次のspeechの空行に、speech2から順番に行を拾って埋め込んで、結婚式のスピーチを完成させてください
/icons/fail.icon Q7. 次のファイルはあるメッセージが暗号化されたものです。ASCIIコードの文字一つ一つを5乗して437で割った余りを10進数で記述しています。各十進数を何乗かして437で割った余りをASCIIコードとして解釈するとメッセージが読めますが、解読しようとしています
正当率 1/7
ううむ、今回は難しかった、と思うが、振り返ってみるとなんで解けなかったのか不思議でしかたない
ナンバープレース4問は翌日、少しずつ書いたら素直にawkで解けた
単純に勉強会の時に思いつかなかっただけなんだろうか・・・
感想
数学的な問題で、冷静にジックリ考えればとけたはずの問題ばかりでとても刺激を受けた
最近業務でもプライベートでも、数学を意識せずにコードを書いているせいか、データを数学的に捉える力を失ってしまっていた
こういった数学的な問題は勉強になるし、好きなシェル芸で問題を解けるのはとても楽しい
学生のときは「数学の公式がいつ役に立つかわからない」ということから勉強のモチベーションが全くでなかった
今回のように
ナンバープレースを解くのに役に立つ
シェル芸に役に立つ
といった、解くための技術として数学が役に立つケースなら、モチベーションがとても湧いてくるのでよい
以上のことから、僕は数学を復習する必要がある
復習に際して以下の点に意識して取り組むとモチベーションコントロールができるはず
今やっている公式はいつ役に立つか?を考える
可能なら、プログラムでそれを実装し、数学で問題を解決する